1. Field of the Invention
The present invention relates generally to computer graphics.
2. Background Art
Computer graphics systems are used to generate the visual images presented in screen displays. In an effort to create the most realistic visual images several techniques such as texture, lighting, and blending are utilized. Casting and rendering shadows (also called “shadowing”) is another important part of the process of generating realistic images. Shadows reinforce the visual reality of an image. For example, shadows can be used to give a two-dimensional image the look of a three dimensional image.
In order to render a scene, a mathematical representation of the scene must first be calculated. This mathematical representation defines several attributes for each image or object depicted in the scene. For example, such attributes can define an object's size, shape, color, location within the scene, and/or position and orientation with respect to other objects in the scene. Given the volume and complexity of the mathematical calculations necessary to render a scene, an extensive amount of computer processing is required.
In addition, the computer system must be very fast in order to respond to changing scenes. For example, during flight simulations, the scene is constantly changing in response to the input of the pilot. The computer system must recompute a new scene in response to the pilot's input. Games and other applications involving graphics also have frequently changing shadow effects. As the scene changes, the shadow effects must also be changed, resulting in an even greater demand for computer processing.
As one would expect, given the number of complex mathematical calculations, the time required for rendering a scene can be lengthy. The need to account for shadowing further adds to processing time. When generating animated movies or simulated still images, delays of several seconds, minutes, or perhaps even hours might be acceptable. However, in real-time applications, such as flight simulation or gaming, delays in rendering and ultimately presenting graphic simulations to the user cannot be tolerated.
One approach to shadowing involves the use of projected shadows. Projected shadows are simple to use, but every time the shadow casting object in a scene moves or changes its orientation with respect to the light source, the shadow has to be changed. This requires projecting the object from the view of the light source and reading back the image into a texture. Real-time simulation does not allow for this process to be done every frame.
Therefore, what is needed is a system and method which reduces the amount of time needed to render and present a computer generated scene with shadowing.